package com.iplatform.iplatformuser.privilege.service.inter;

import com.iplatform.module.privilege.PriManagerBean;
import com.iplatform.module.privilege.PriMenuBean;
import com.iplatform.module.privilege.dto.PriManagerDto;

import java.util.List;
import java.util.Map;

/**
 * <p>Title: IPriManagerService</p>
 * <p>Description: </p>
 * @author RayLLi
 * @date 2018年8月27日
 */
public interface IPriManagerService {

	/**
	 * Title: queryCodeAndName
	 * Description:联想查询
	 * @return
	 */
	List<Map<String, String>> queryCodeAndName();

	/**
	 * <p>Title: checkManager</p>
	 * <p>Description: 验证登录，通过用户密码获取对应用户信息</p>
	 * @param priManager
	 * @return
	 */
	PriManagerBean checkManager(PriManagerBean priManager);

	/**
	 * <p>Title: queryUserRole</p>
	 * <p>Description: 通过用户管理员ID获取用户角色</p>
	 * @param mgrId
	 * @return
	 */
	Map<String, String> getUserRole(String mgrId);

	/**
	 * <p>Title: queryAllMenu</p>
	 * <p>Description: 如果是超级管理员，则获取所有菜单</p>
	 * @return
	 */
	List<PriMenuBean> queryAllMenu();

	/**
	 * Title: queryMenuAndOptByUser
	 * Description: 查询当前角色的操作和菜单信息
	 * @param priManager
	 * @return
	 */
	List<Map<String, String>> queryMenuAndOptByUser(PriManagerBean priManager);

	/**
	 * Title: deleteManager
	 * Description:
	 * @param mgrId
	 */
	void deleteManager(String mgrId);


	/**
	 * Title: queryHomeUrl
	 * Description:
	 * @param mgrId
	 * @return
	 */
	String queryHomeUrl(String mgrId);


	/**
	 * Title: loadManagers
	 * Description: 读取管理员信息
	 * @param formMap
	 * @return
	 */
	List<PriManagerDto> loadManagers(Map<String, String> formMap);

	/**
	 * 根据userCode查询
	 * @param formMap
	 * @return
	 */
	List<PriManagerBean> queryByCode(Map<String, String> formMap);

	/**
	 * Title: insert
	 * Description: 新增管理员
	 * @return
	 */
	int insert(PriManagerDto priManagerDto);
	//com.boco.cloud.auth.bean.

	/**
	 * Title: batchDeleteManager
	 * Description: 批量删除
	 * @param ids
	 */
	void batchDeleteManager(String[] ids);


	/**
	 * Title: setStopOrActive
	 * Description: 更新状态
	 * @param mgrId
	 */
	void setStopOrActive(String mgrId);

	/**
	 * Title: update
	 * Description:  修改管理员信息
	 * @param priManagerDto
	 * @return
	 */
	int update(PriManagerDto priManagerDto);
	//com.boco.cloud.auth.bean.

	/**
	 * 新增时判重
	 * @param userCode
	 * @return
	 */
	int checkAdd(String userCode);

	/**
	 * 修改时判重
	 * @param userCode
	 * @param mgrId
	 * @return
	 */
	int checkUpdate(String userCode,String mgrId);

	/**
	 * 通过id查询用户详情
	 * @param mgrId
	 * @return
	 */
	PriManagerDto queryByMgrId(String mgrId);

	void binds (String mgrId,List<String> roleIds);
}
